from pydantic import BaseModel


class ConnectionInfo(BaseModel):
    host: str
    port: int
    username: str
    password: str


class ColumnInfo(BaseModel):
    table_catalog: str = None
    table_schema: str = None
    table_name: str = None
    column_name: str = None
    ordinal_position: int = None
    column_default: str = None
    is_nullable: str = None
    data_type: str = None
    character_maximum_length: int = None
    character_octet_length: int = None
    numeric_precision: int = None
    numeric_scale: int = None
    datetime_precision: int = None
    character_set_name: str = None
    collation_name: str = None
    column_type: str = None
    column_key: str = None
    extra: str = None
    privileges: str = None
    column_comment: str = None
    repeatable: bool = None
    only_char: bool = None
    only_number: bool = None
    prefix_string: str = None
    suffix_string: str = None
    fixed_string: str = None
    length: int = None
    can_negative: bool = None
    can_zero: bool = None
    can_decimal: bool = None
    min: str = None
    max: str = None
    scale: int = None
    set_null: bool = False
    only: str = None
    ref_table_col: str = None
    sql: str = None
